
#ifndef SIMU_TEST_PROJECT
#define SIMU_TEST_PROJECT

#include "TaskModule.h"
#include "../GlobalParameters.h"
#include "Rasp_Simu.h"

extern "C" BaseObject *createSimu();
extern "C" void destroySimu(BaseObject *p);

class Simu : public TaskModule {
public:
    Simu();
int EchoLen = 1000000;
int TargetNum = 1;
float FrPt = 4600;
float FrFs = 2;
int FrNum = 8;
float FrFre = 3000;
float FrPw = 800;
float FrBw = 1;
int FrType = 0;
float TargetRCS1 = 40;
float TargetRCS2 = 40;
int TargetRCSType1 = 0;
int TargetRCSType2 = 0;
float TargetRange1 = 30000;
float TargetRange2 = 35000;
float TargetVel1 = 100;
float TargetVel2 = -100;
float NoiseRcs = 1;
float AddNoise = 0;
std::string BeamAmpFilePath = "libs/BeamAmp.bin";




    ~Simu();

    void onCompute(buffer_table_t *input, buffer_table_t *output) override;

    bool Init();


private:
    Rasp_Simu rasp_simu;
    int SubFrType = FrType;
    float SubFrBw = FrBw;
    float SubFrPw = FrPw;
    float SubFrPt = FrPw;
    float SubFrFs = FrFs;
    float SubFrFre = FrFre;
};

#endif //SIMU_TEST_PROJECT
